﻿/*
 ******************************************************************
 *      
 * 域名空间　	: GreatB2C.DALFactory
 * 类　名　称	: INavigator.cs
 * 类　功　能	: 封装DAL实现层
 * 类　流　程    :                             
 * 运用算法　	:                             
 * 编　写　人	: 王超             
 * 编写日期　	: 2011/3/26
 * 最近更新日期　:	    
 * 版　　本　	: V1.0                           
 * 描　　述　	: Descript of Class                                                 
 *                                        
 ******************************************************************
*/

using System;
using System.Text;
using System.Data;
using System.Reflection;
using System.Collections;

namespace GreatB2C.DALFactory
{
	/// <summary>
    /// 类描述：数据工厂类
    /// </summary>
	public interface INavigator
	{
		#region implement methods

		/// <summary>
		/// 检查是否有重复记录。
		/// </summary>
		/// <param name="objModel">对应的数据映射类</param>
		/// <returns>操作结果：true-成功 false-失败</returns>
        bool IsExists( GreatB2C.Model.Navigator objModel );

		/// <summary>
		/// 检索出表中所有记录	
		/// </summary>
		/// <returns>返回对象数据集合</returns>
		DataTable ListNavigator( );

		/// <summary>
		/// 根据表中主键ID查询记录信息
		/// </summary>
		/// <param name="objModel">相应的对象映射模型</param>
		/// <returns>0-操作成功 , errnum-操作失败，返回错误数</returns>
		GreatB2C.Model.Navigator ListByID( GreatB2C.Model.Navigator objModel );

		/// <summary>
		/// 新增一条新记录到表中
		/// </summary>
		/// <param name="objModel">相应的对象映射模型</param>
		/// <returns>0-操作成功 , errnum-操作失败，返回错误数</returns>
		bool Insert( GreatB2C.Model.Navigator objModel );

		/// <summary>
		/// 根据主键ID更新指定记录
		/// </summary>
		/// <param name="objModel">相应的对象映射模型</param>
		/// <returns>0-操作成功 , errnum-操作失败，返回错误数</returns>
		bool Update( GreatB2C.Model.Navigator objModel );

		/// <summary>
		/// 根据主键删除指定记录
		/// </summary>
		/// <param name="objModel">相应的对象映射模型</param>
		/// <returns>0-操作成功 , errnum-操作失败，返回错误数</returns>
		bool Delete( GreatB2C.Model.Navigator objModel );

		/// <summary>
		/// 根据ID列表批量删除记录
		/// 数据格式：1,2,3,4,5
		/// </summary>
		/// <param name="strList">ID列表</param>
		/// <returns>0-操作成功 , errnum-操作失败，返回错误数</returns>
		bool DeleteList( string strList );

        /// <summary>
        /// 获取导航根级目录
        /// </summary>
        /// <returns></returns>
        DataTable GetRootNavi( );

		#endregion
	}	
	
    public sealed partial class DataAccess
    {
        public static INavigator CreateNavigator()
        {
            string className = path + ".Navigator";
            return (INavigator)Assembly.Load(path).CreateInstance(className);
        }
    }
}

